#include "udf_cfg.h"

#if ( ENABLE_UDF03 > 0 && !defined(UDP_SUB_PROJECT) && !defined(UDT_SUB_PROJECT) && (defined(UDF03_SUB_PROJECT) || defined(UDX_SUB_PROJECT)) )

#define APP_DEMO_ENABLE
#include "app.h"

#include "../udsf/udsf_gpio.c"

#if 0 // 如下为ROM内置代码，udf03可bypass该部分代码
int udf03_udf_handle(void){
		uint32_t gpio_pmode     = gPara.p_2k->paramFunc.gpio_pmode;
		uint32_t gpio_pctrl_ue  = gPara.p_2k->paramFunc.gpio_pctrl_ue;
		uint32_t gpio_pctrl_re  = gPara.p_2k->paramFunc.gpio_pctrl_re;
		uint32_t gpio_pmux0     = gPara.p_2k->paramFunc.gpio_pmux0;
		uint32_t gpio_pmux1     = gPara.p_2k->paramFunc.gpio_pmux1;
		if( gPara.debug_en ){
			gpio_pmode     &= ~((1<<6)|(1<<7)); // gpio0.6 gpio0.7 不输出
			gpio_pctrl_ue  |= ((1<<6)|(1<<7));  // gpio0.6 gpio0.7 上拉
			gpio_pctrl_re  |= ((1<<6)|(1<<7));  // gpio0.6 gpio0.7 上拉
			gpio_pmux0     &= 0x00FFffff;       // gpio0.6/0.7 -> usci
			gpio_pmux0     |= 0x11000000;       // gpio0.6/0.7 -> usci
		}
		GPIO_Default_Status(
		gpio_pmode,
		gpio_pctrl_ue,
		gpio_pctrl_re,
		gpio_pmux0,
		gpio_pmux1);
		return 0;
}
#elif DEMO_CFG == DEMO_CFG_APP_TEST_STACK
#include "../Demo_APP_TEST_STACK/udsf_demo_app_test_stack.c"
int udf03_udf_handle(void){
	return udsf_demo_app_test_stack("udf03");
}
#else
#error "udf03 no demo"
#endif

#endif
